package com.unknowpupil.web.config.xxs;


import org.springframework.context.annotation.Configuration;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;

/**
 * @Classname: XssFilter
 * @Author: <a> w10g </a>
 * @CreateDate: Create in 2019/10/10 13:35
 * @Description: 跨站脚本XSS又叫CSS (Cross Site Script)。
 * 它指的是恶意攻击者往Web页面里插入恶意html代码，当用户浏览该页之时，
 * 嵌入其中Web里面的html代码会被执行，从而达到恶意用户的特殊目的，
 * 例如：获取受害者的会话标识以冒充受害者访问系统（具有受害者的权限），
 * 还能够轻松地强迫用户的浏览器发出非故意的HTTP请求，如诈骗性的电汇请求、修改口令和下载非法的内容等请求。
 * 对于不可信的输入可以采用 apache.commons.lang3.StringEscapeUtils 对输入字符串进行过滤，将’<’ ‘>’ ‘*’ 三个字符转换成html编码格式 < & &gt. 防止而已的HTML注入攻击
 * @Version: 1.0
 */
//@Configuration
public class XssFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest)servletRequest;
        filterChain.doFilter(new XssHttpServletRequestWrapper(request),servletResponse);
    }

    @Override
    public void destroy() {

    }

}
